import struct

#from other_idl import *

class slot :
	def __init__(self) :
		self.open = False			# boolean
		self.character_seq = 0			# uint32
		self.makeCharacter = False			# boolean
		self.remainStatResetCount = 0			# uint32
		self.classtype = 0			# uint32
		self.level = 0			# uint32
		self.reg_date = 0			# uint64
	def Store(self) :
		data = ''
		data += struct.pack('b', self.open)
		data += struct.pack('I', self.character_seq)
		data += struct.pack('b', self.makeCharacter)
		data += struct.pack('I', self.remainStatResetCount)
		data += struct.pack('I', self.classtype)
		data += struct.pack('I', self.level)
		data += struct.pack('Q', self.reg_date)
		return data
	def Load(self, buf) :
		self.open = struct.unpack('b', buf[0:1])[0]; buf = buf[1:]
		self.character_seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.makeCharacter = struct.unpack('b', buf[0:1])[0]; buf = buf[1:]
		self.remainStatResetCount = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.classtype = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.level = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.reg_date = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		return buf
def slotInit() :
	return slot()
def slotStore(o) :
	return o.Store()
def slotLoad(buf) :
	val = slot()
	buf = val.Load(buf)
	return [val, buf]
class UserInfo :
	def __init__(self) :
		self.userseq = 0			# uint32
		self.array_Slot = [slotInit()] * 8			# static_array
		self.main_slot_index = 0			# int32
		self.nickname = ''			# string
		self.profile_url = ''			# string
		self.score = 0			# uint32
		self.heart_blocked = 0			# uint32
		self.invite_blocked = 0			# uint32
		self.profile_opened = 0			# uint32
		self.company = 0			# uint32
		self.sale_code = 0			# uint32
		self.u8intro_state = 0			# uint32
		self.wp_last_week = 0			# uint32
		self.wp_cur_week = 0			# uint32
		self.wp_reg_date = 0			# uint64
		self.array_tutorial = [0] * 4			# static_array
		self.uuid = ''			# string
		self.battle_aftereffect_time = 0			# uint32
		self.reward = ''			# string
		self.shard_Item_db_type = 0			# uint32
		self.wp_last_reg_date = 0			# uint64
		self.reserve1 = 0			# uint64
		self.reserve2 = 0			# uint64
		self.reserve3 = 0			# uint64
		self.reserve4 = 0			# uint64
		self.reserve5 = 0			# uint64
		self.worldboss_hit = 0			# uint64
		self.worldboss_point = 0			# uint64
		self.medal = ''			# string
		self.recv_stamina = 0			# uint32
		self.recv_stamina_time = 0			# uint64
		self.guild_seq = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.userseq)
		self.array_Slot = list(self.array_Slot) + [slotInit()] * (8 - len(self.array_Slot))
		for k2 in range(0, 8) :
			data += slotStore(self.array_Slot[k2])
		data += struct.pack('i', self.main_slot_index)
		data += struct.pack('i', len(self.nickname))
		fmt = str(len(self.nickname)) + 's'
		data += struct.pack(fmt, self.nickname)
		data += struct.pack('i', len(self.profile_url))
		fmt = str(len(self.profile_url)) + 's'
		data += struct.pack(fmt, self.profile_url)
		data += struct.pack('I', self.score)
		data += struct.pack('I', self.heart_blocked)
		data += struct.pack('I', self.invite_blocked)
		data += struct.pack('I', self.profile_opened)
		data += struct.pack('I', self.company)
		data += struct.pack('I', self.sale_code)
		data += struct.pack('I', self.u8intro_state)
		data += struct.pack('I', self.wp_last_week)
		data += struct.pack('I', self.wp_cur_week)
		data += struct.pack('Q', self.wp_reg_date)
		self.array_tutorial = list(self.array_tutorial) + [0] * (4 - len(self.array_tutorial))
		for k2 in range(0, 4) :
			data += struct.pack('I', self.array_tutorial[k2])
		data += struct.pack('i', len(self.uuid))
		fmt = str(len(self.uuid)) + 's'
		data += struct.pack(fmt, self.uuid)
		data += struct.pack('I', self.battle_aftereffect_time)
		data += struct.pack('i', len(self.reward))
		fmt = str(len(self.reward)) + 's'
		data += struct.pack(fmt, self.reward)
		data += struct.pack('I', self.shard_Item_db_type)
		data += struct.pack('Q', self.wp_last_reg_date)
		data += struct.pack('Q', self.reserve1)
		data += struct.pack('Q', self.reserve2)
		data += struct.pack('Q', self.reserve3)
		data += struct.pack('Q', self.reserve4)
		data += struct.pack('Q', self.reserve5)
		data += struct.pack('Q', self.worldboss_hit)
		data += struct.pack('Q', self.worldboss_point)
		data += struct.pack('i', len(self.medal))
		fmt = str(len(self.medal)) + 's'
		data += struct.pack(fmt, self.medal)
		data += struct.pack('I', self.recv_stamina)
		data += struct.pack('Q', self.recv_stamina_time)
		data += struct.pack('I', self.guild_seq)
		return data
	def Load(self, buf) :
		self.userseq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.array_Slot = []
		for i in range(0, 8) :
			[v2, buf] = slotLoad(buf)
			self.array_Slot.append(v2)
		self.main_slot_index = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.nickname = buf[0:str_length]; buf = buf[str_length:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.profile_url = buf[0:str_length]; buf = buf[str_length:]
		self.score = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.heart_blocked = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.invite_blocked = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.profile_opened = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.company = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.sale_code = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.u8intro_state = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.wp_last_week = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.wp_cur_week = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.wp_reg_date = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.array_tutorial = []
		for i in range(0, 4) :
			v2 = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
			self.array_tutorial.append(v2)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.uuid = buf[0:str_length]; buf = buf[str_length:]
		self.battle_aftereffect_time = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.reward = buf[0:str_length]; buf = buf[str_length:]
		self.shard_Item_db_type = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.wp_last_reg_date = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve1 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve2 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve3 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve4 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve5 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.worldboss_hit = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.worldboss_point = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.medal = buf[0:str_length]; buf = buf[str_length:]
		self.recv_stamina = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.recv_stamina_time = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.guild_seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def UserInfoInit() :
	return UserInfo()
def UserInfoStore(o) :
	return o.Store()
def UserInfoLoad(buf) :
	val = UserInfo()
	buf = val.Load(buf)
	return [val, buf]
class QuickSlot :
	def __init__(self) :
		self.type = 0			# uint32
		self.index = 0			# uint64
	def Store(self) :
		data = ''
		data += struct.pack('I', self.type)
		data += struct.pack('Q', self.index)
		return data
	def Load(self, buf) :
		self.type = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.index = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		return buf
def QuickSlotInit() :
	return QuickSlot()
def QuickSlotStore(o) :
	return o.Store()
def QuickSlotLoad(buf) :
	val = QuickSlot()
	buf = val.Load(buf)
	return [val, buf]
class CharacterInfo :
	def __init__(self) :
		self.characterseq = 0			# uint32
		self.userSeq = 0			# uint32
		self.classtype = 0			# uint32
		self.slotindex = 0			# uint32
		self.remain_stat_point = 0			# uint32
		self.remain_skill_point = 0			# uint32
		self.ap_current = 0			# uint32
		self.ep_current = 0			# uint32
		self.ep_max = 0			# uint32
		self.weapon = 0			# uint64
		self.weapon_iconidx = 0			# uint32
		self.helmet = 0			# uint64
		self.helmet_iconidx = 0			# uint32
		self.armor = 0			# uint64
		self.armor_iconidx = 0			# uint32
		self.glove = 0			# uint64
		self.shoes = 0			# uint64
		self.necklace = 0			# uint64
		self.cloak = 0			# uint64
		self.ring = 0			# uint64
		self.charm = 0			# uint64
		self.avartar = 0			# uint64
		self.avartar_iconidx = 0			# uint32
		self.vehicle = 0			# uint64
		self.vehicle_iconidx = 0			# uint32
		self.title = 0			# uint64
		self.fairy = 0			# uint64
		self.battlepet = 0			# uint64
		self.exp = 0			# uint32
		self.level = 0			# uint32
		self.str = 0			# uint32
		self.dex = 0			# uint32
		self.con = 0			# uint32
		self.spi = 0			# uint32
		self.array_QuickSlot = [QuickSlotInit()] * 8			# static_array
		self.array_Skill = [0] * 20			# static_array
		self.gold = 0			# uint32
		self.event_stamina = 0			# int32
		self.recover_stamina_sec = 0			# uint64
		self.drill_status = 0			# uint32
		self.drill_time = 0			# uint32
		self.drill_start = 0			# uint64
		self.drill_end = 0			# uint64
		self.consecutive_win = 0			# uint32
		self.win_comment = ''			# string
		self.reg_date = 0			# uint64
		self.dungeon_clear_info = ''			# string
		self.bag_order_info = ''			# string
		self.buff_info = ''			# string
		self.battle_afterEffect_info = ''			# string
		self.daily_ep = 0			# uint32
		self.name_tag = 0			# uint64
		self.name_tag_iconidx = 0			# uint32
		self.reserve1 = 0			# uint64
		self.reserve2 = 0			# uint64
		self.reserve3 = 0			# uint64
		self.reserve4 = 0			# uint64
		self.reserve5 = 0			# uint64
		self.daily_mission_info = ''			# string
		self.cur_stamina = 0			# uint32
		self.max_stamina = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.characterseq)
		data += struct.pack('I', self.userSeq)
		data += struct.pack('I', self.classtype)
		data += struct.pack('I', self.slotindex)
		data += struct.pack('I', self.remain_stat_point)
		data += struct.pack('I', self.remain_skill_point)
		data += struct.pack('I', self.ap_current)
		data += struct.pack('I', self.ep_current)
		data += struct.pack('I', self.ep_max)
		data += struct.pack('Q', self.weapon)
		data += struct.pack('I', self.weapon_iconidx)
		data += struct.pack('Q', self.helmet)
		data += struct.pack('I', self.helmet_iconidx)
		data += struct.pack('Q', self.armor)
		data += struct.pack('I', self.armor_iconidx)
		data += struct.pack('Q', self.glove)
		data += struct.pack('Q', self.shoes)
		data += struct.pack('Q', self.necklace)
		data += struct.pack('Q', self.cloak)
		data += struct.pack('Q', self.ring)
		data += struct.pack('Q', self.charm)
		data += struct.pack('Q', self.avartar)
		data += struct.pack('I', self.avartar_iconidx)
		data += struct.pack('Q', self.vehicle)
		data += struct.pack('I', self.vehicle_iconidx)
		data += struct.pack('Q', self.title)
		data += struct.pack('Q', self.fairy)
		data += struct.pack('Q', self.battlepet)
		data += struct.pack('I', self.exp)
		data += struct.pack('I', self.level)
		data += struct.pack('I', self.str)
		data += struct.pack('I', self.dex)
		data += struct.pack('I', self.con)
		data += struct.pack('I', self.spi)
		self.array_QuickSlot = list(self.array_QuickSlot) + [QuickSlotInit()] * (8 - len(self.array_QuickSlot))
		for k2 in range(0, 8) :
			data += QuickSlotStore(self.array_QuickSlot[k2])
		self.array_Skill = list(self.array_Skill) + [0] * (20 - len(self.array_Skill))
		for k2 in range(0, 20) :
			data += struct.pack('I', self.array_Skill[k2])
		data += struct.pack('I', self.gold)
		data += struct.pack('i', self.event_stamina)
		data += struct.pack('Q', self.recover_stamina_sec)
		data += struct.pack('I', self.drill_status)
		data += struct.pack('I', self.drill_time)
		data += struct.pack('Q', self.drill_start)
		data += struct.pack('Q', self.drill_end)
		data += struct.pack('I', self.consecutive_win)
		data += struct.pack('i', len(self.win_comment))
		fmt = str(len(self.win_comment)) + 's'
		data += struct.pack(fmt, self.win_comment)
		data += struct.pack('Q', self.reg_date)
		data += struct.pack('i', len(self.dungeon_clear_info))
		fmt = str(len(self.dungeon_clear_info)) + 's'
		data += struct.pack(fmt, self.dungeon_clear_info)
		data += struct.pack('i', len(self.bag_order_info))
		fmt = str(len(self.bag_order_info)) + 's'
		data += struct.pack(fmt, self.bag_order_info)
		data += struct.pack('i', len(self.buff_info))
		fmt = str(len(self.buff_info)) + 's'
		data += struct.pack(fmt, self.buff_info)
		data += struct.pack('i', len(self.battle_afterEffect_info))
		fmt = str(len(self.battle_afterEffect_info)) + 's'
		data += struct.pack(fmt, self.battle_afterEffect_info)
		data += struct.pack('I', self.daily_ep)
		data += struct.pack('Q', self.name_tag)
		data += struct.pack('I', self.name_tag_iconidx)
		data += struct.pack('Q', self.reserve1)
		data += struct.pack('Q', self.reserve2)
		data += struct.pack('Q', self.reserve3)
		data += struct.pack('Q', self.reserve4)
		data += struct.pack('Q', self.reserve5)
		data += struct.pack('i', len(self.daily_mission_info))
		fmt = str(len(self.daily_mission_info)) + 's'
		data += struct.pack(fmt, self.daily_mission_info)
		data += struct.pack('I', self.cur_stamina)
		data += struct.pack('I', self.max_stamina)
		return data
	def Load(self, buf) :
		self.characterseq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.userSeq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.classtype = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.slotindex = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.remain_stat_point = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.remain_skill_point = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.ap_current = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.ep_current = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.ep_max = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.weapon = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.weapon_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.helmet = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.helmet_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.armor = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.armor_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.glove = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.shoes = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.necklace = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.cloak = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.ring = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.charm = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.avartar = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.avartar_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.vehicle = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.vehicle_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.title = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.fairy = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.battlepet = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.exp = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.level = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.str = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.dex = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.con = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.spi = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.array_QuickSlot = []
		for i in range(0, 8) :
			[v2, buf] = QuickSlotLoad(buf)
			self.array_QuickSlot.append(v2)
		self.array_Skill = []
		for i in range(0, 20) :
			v2 = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
			self.array_Skill.append(v2)
		self.gold = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.event_stamina = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.recover_stamina_sec = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.drill_status = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.drill_time = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.drill_start = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.drill_end = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.consecutive_win = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.win_comment = buf[0:str_length]; buf = buf[str_length:]
		self.reg_date = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.dungeon_clear_info = buf[0:str_length]; buf = buf[str_length:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.bag_order_info = buf[0:str_length]; buf = buf[str_length:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.buff_info = buf[0:str_length]; buf = buf[str_length:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.battle_afterEffect_info = buf[0:str_length]; buf = buf[str_length:]
		self.daily_ep = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.name_tag = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.name_tag_iconidx = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.reserve1 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve2 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve3 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve4 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		self.reserve5 = struct.unpack('Q', buf[0:8])[0]; buf = buf[8:]
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.daily_mission_info = buf[0:str_length]; buf = buf[str_length:]
		self.cur_stamina = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.max_stamina = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def CharacterInfoInit() :
	return CharacterInfo()
def CharacterInfoStore(o) :
	return o.Store()
def CharacterInfoLoad(buf) :
	val = CharacterInfo()
	buf = val.Load(buf)
	return [val, buf]
class CacheResult :
	CACHE_SUCCESS = 0
	CACHE_NOT_EXIST_USER = 1
	CACHE_NOT_EXIST_CHARACTER = 2
	CACHE_DATABASE_ERROR = 3
def CacheResultInit() : 
	return 0
def CacheResultStore(e) :
	data = ''
	data += struct.pack('i', e)
	return data
def CacheResultLoad(buf) :
	val = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
	return [val, buf]
class CacheOpenAck :
	MSG_ID = 1
	def __init__(self) :
		pass
	def Store(self) :
		data = ''
		return data
	def Load(self, buf) :
		return buf
def CacheOpenAckInit() :
	return CacheOpenAck()
def CacheOpenAckStore(o) :
	return o.Store()
def CacheOpenAckLoad(buf) :
	val = CacheOpenAck()
	buf = val.Load(buf)
	return [val, buf]
class CacheCloseAck :
	MSG_ID = 2
	def __init__(self) :
		pass
	def Store(self) :
		data = ''
		return data
	def Load(self, buf) :
		return buf
def CacheCloseAckInit() :
	return CacheCloseAck()
def CacheCloseAckStore(o) :
	return o.Store()
def CacheCloseAckLoad(buf) :
	val = CacheCloseAck()
	buf = val.Load(buf)
	return [val, buf]
class UserInfoSyn :
	MSG_ID = 7001
	def __init__(self) :
		self.seq = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def UserInfoSynInit() :
	return UserInfoSyn()
def UserInfoSynStore(o) :
	return o.Store()
def UserInfoSynLoad(buf) :
	val = UserInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class UserInfoAck :
	MSG_ID = 7002
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
		self.stUserInfo = UserInfoInit()			# UserInfo
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		data += UserInfoStore(self.stUserInfo)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		[self.stUserInfo, buf] = UserInfoLoad(buf)
		return buf
def UserInfoAckInit() :
	return UserInfoAck()
def UserInfoAckStore(o) :
	return o.Store()
def UserInfoAckLoad(buf) :
	val = UserInfoAck()
	buf = val.Load(buf)
	return [val, buf]
class CharacterInfoSyn :
	MSG_ID = 7003
	def __init__(self) :
		self.seq = 0			# uint32
		self.char_seq = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('I', self.char_seq)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.char_seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def CharacterInfoSynInit() :
	return CharacterInfoSyn()
def CharacterInfoSynStore(o) :
	return o.Store()
def CharacterInfoSynLoad(buf) :
	val = CharacterInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class CharacterInfoAck :
	MSG_ID = 7004
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
		self.stCharacterInfo = CharacterInfoInit()			# CharacterInfo
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		data += CharacterInfoStore(self.stCharacterInfo)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		[self.stCharacterInfo, buf] = CharacterInfoLoad(buf)
		return buf
def CharacterInfoAckInit() :
	return CharacterInfoAck()
def CharacterInfoAckStore(o) :
	return o.Store()
def CharacterInfoAckLoad(buf) :
	val = CharacterInfoAck()
	buf = val.Load(buf)
	return [val, buf]
class FlushCharacterInfoSyn :
	MSG_ID = 7005
	def __init__(self) :
		self.seq = 0			# uint32
		self.char_seq = 0			# uint32
		self.flushDB = False			# boolean
		self.stCharacterInfo = CharacterInfoInit()			# CharacterInfo
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('I', self.char_seq)
		data += struct.pack('b', self.flushDB)
		data += CharacterInfoStore(self.stCharacterInfo)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.char_seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.flushDB = struct.unpack('b', buf[0:1])[0]; buf = buf[1:]
		[self.stCharacterInfo, buf] = CharacterInfoLoad(buf)
		return buf
def FlushCharacterInfoSynInit() :
	return FlushCharacterInfoSyn()
def FlushCharacterInfoSynStore(o) :
	return o.Store()
def FlushCharacterInfoSynLoad(buf) :
	val = FlushCharacterInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class FlushCharacterInfoAck :
	MSG_ID = 7006
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		return buf
def FlushCharacterInfoAckInit() :
	return FlushCharacterInfoAck()
def FlushCharacterInfoAckStore(o) :
	return o.Store()
def FlushCharacterInfoAckLoad(buf) :
	val = FlushCharacterInfoAck()
	buf = val.Load(buf)
	return [val, buf]
class FlushUserInfoSyn :
	MSG_ID = 7007
	def __init__(self) :
		self.seq = 0			# uint32
		self.flushDB = False			# boolean
		self.stUserInfo = UserInfoInit()			# UserInfo
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('b', self.flushDB)
		data += UserInfoStore(self.stUserInfo)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.flushDB = struct.unpack('b', buf[0:1])[0]; buf = buf[1:]
		[self.stUserInfo, buf] = UserInfoLoad(buf)
		return buf
def FlushUserInfoSynInit() :
	return FlushUserInfoSyn()
def FlushUserInfoSynStore(o) :
	return o.Store()
def FlushUserInfoSynLoad(buf) :
	val = FlushUserInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class FlushUserInfoAck :
	MSG_ID = 7008
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		return buf
def FlushUserInfoAckInit() :
	return FlushUserInfoAck()
def FlushUserInfoAckStore(o) :
	return o.Store()
def FlushUserInfoAckLoad(buf) :
	val = FlushUserInfoAck()
	buf = val.Load(buf)
	return [val, buf]
class FlushUserSlotInfoSyn :
	MSG_ID = 7009
	def __init__(self) :
		self.seq = 0			# uint32
		self.slotIndex = 0			# uint32
		self.stSlot = slotInit()			# slot
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('I', self.slotIndex)
		data += slotStore(self.stSlot)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.slotIndex = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.stSlot, buf] = slotLoad(buf)
		return buf
def FlushUserSlotInfoSynInit() :
	return FlushUserSlotInfoSyn()
def FlushUserSlotInfoSynStore(o) :
	return o.Store()
def FlushUserSlotInfoSynLoad(buf) :
	val = FlushUserSlotInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class FlushUserSlotInfoAck :
	MSG_ID = 7010
	def __init__(self) :
		self.seq = 0			# uint32
		self.slotIndex = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('I', self.slotIndex)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.slotIndex = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		return buf
def FlushUserSlotInfoAckInit() :
	return FlushUserSlotInfoAck()
def FlushUserSlotInfoAckStore(o) :
	return o.Store()
def FlushUserSlotInfoAckLoad(buf) :
	val = FlushUserSlotInfoAck()
	buf = val.Load(buf)
	return [val, buf]
class RemoveUserSyn :
	MSG_ID = 7011
	def __init__(self) :
		self.seq = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def RemoveUserSynInit() :
	return RemoveUserSyn()
def RemoveUserSynStore(o) :
	return o.Store()
def RemoveUserSynLoad(buf) :
	val = RemoveUserSyn()
	buf = val.Load(buf)
	return [val, buf]
class RemoveUserAck :
	MSG_ID = 7012
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		return buf
def RemoveUserAckInit() :
	return RemoveUserAck()
def RemoveUserAckStore(o) :
	return o.Store()
def RemoveUserAckLoad(buf) :
	val = RemoveUserAck()
	buf = val.Load(buf)
	return [val, buf]
class NewCharacterInfoSyn :
	MSG_ID = 7013
	def __init__(self) :
		self.seq = 0			# uint32
		self.char_seq = 0			# uint32
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += struct.pack('I', self.char_seq)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		self.char_seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		return buf
def NewCharacterInfoSynInit() :
	return NewCharacterInfoSyn()
def NewCharacterInfoSynStore(o) :
	return o.Store()
def NewCharacterInfoSynLoad(buf) :
	val = NewCharacterInfoSyn()
	buf = val.Load(buf)
	return [val, buf]
class NewCharacterInfoAck :
	MSG_ID = 7014
	def __init__(self) :
		self.seq = 0			# uint32
		self.result = CacheResultInit()			# CacheResult
		self.strError = ''			# string
		self.stCharacterInfo = CharacterInfoInit()			# CharacterInfo
	def Store(self) :
		data = ''
		data += struct.pack('I', self.seq)
		data += CacheResultStore(self.result)
		data += struct.pack('i', len(self.strError))
		fmt = str(len(self.strError)) + 's'
		data += struct.pack(fmt, self.strError)
		data += CharacterInfoStore(self.stCharacterInfo)
		return data
	def Load(self, buf) :
		self.seq = struct.unpack('I', buf[0:4])[0]; buf = buf[4:]
		[self.result, buf] = CacheResultLoad(buf)
		str_length = struct.unpack('i', buf[0:4])[0]; buf = buf[4:]
		self.strError = buf[0:str_length]; buf = buf[str_length:]
		[self.stCharacterInfo, buf] = CharacterInfoLoad(buf)
		return buf
def NewCharacterInfoAckInit() :
	return NewCharacterInfoAck()
def NewCharacterInfoAckStore(o) :
	return o.Store()
def NewCharacterInfoAckLoad(buf) :
	val = NewCharacterInfoAck()
	buf = val.Load(buf)
	return [val, buf]
